package pe.edu.upc.dew.grupo3a.dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.grupo3a.model.Administrador;
import pe.edu.upc.dew.grupo3a.model.Cine;
import pe.edu.upc.dew.grupo3a.model.Pelicula;

public class AdministradorDaoJdbc extends SimpleJdbcDaoSupport implements
AdministradorDao{

	@Override
	public boolean validarAdministrador(String username, String password) {
		int rowCount=0;
		try {
			rowCount = getSimpleJdbcTemplate().queryForInt("select count(*) from administrador where usuario=?" +
					" and clave=?"
					,username,password );
		} catch(DataAccessException ex ){
		}
		return(rowCount>0);
	}

	@Override
	public Administrador getAdministradorPorCodigo(String codigoadministrador) {
		try {
		return getSimpleJdbcTemplate().queryForObject("Select codigoempleado," +
				"apellidos,nombres,usuario,clave,estado,master from administrador " +
				"where codigoempleado=?"
				,new BeanPropertyRowMapper<Administrador>(Administrador.class)
				, codigoadministrador);
		} 
		catch (DataAccessException ex){
			return null;
		}
		
		// TODO Auto-generated method stub
	}

	@Override
	public void insertarAdministrador(Administrador administrador) {
		getSimpleJdbcTemplate().update("Insert into administrador (codigoempleado," +
				"apellidos,nombres,usuario,clave,estado,master) values (?,?,?,?,?,?,?)"
				,administrador.getCodigoEmpleado()
				,administrador.getApellidos()
				,administrador.getNombres()
				,administrador.getUsuario()
				,administrador.getClave()
				,administrador.getEstado()
				,administrador.getMaster()
				);
	}

	@Override
	public void actualizarAdministrador(Administrador administrador) {
		getSimpleJdbcTemplate().update("Update administrador set apellidos=?," +
				"nombres=?,usuario=?,clave=?,estado=?,master=? where codigoempleado=?"
				,administrador.getApellidos()
				,administrador.getNombres()
				,administrador.getUsuario()
				,administrador.getClave()
				,administrador.getEstado()
				,administrador.getMaster()
				,administrador.getCodigoEmpleado()
				);
	}

	@Override
	public void eliminarAdministrador(Administrador administrador) {
		getSimpleJdbcTemplate().update("Delete from administrador where codigoempleado=?"
				,administrador.getCodigoEmpleado()
				);
		
	}
	

}
